<?php

class VotoMapper extends SON_Db_DataMapperAbstract
{
    protected $_dbTable = "DbTable_Voto";
    protected $_model = "Voto";

    protected function _insert(SON_Db_DomainObjectAbstract $obj)
    {
        try {
            $dbTable = $this->getDbTable();
            $data = array(
                'candidato_id' => $obj->getCandidato_id(),
                'usuario_id' => $obj->getUsuario_id()
            );
            return $dbTable->insert($data);
        } catch (Zend_Exception $e) {
            throw new Exception($e);
        }
    }

    protected function _update(SON_Db_DomainObjectAbstract $obj)
    {}
    
    public function getByUsuarioId($id)
    {
    	$db = $this->getDb();
    	$query = $db->select();
    	$query->from('voto')
    		->where('usuario_id = ?', (int) $id);
    
    	$votos = $db->fetchAll($query);
    	
    	$objArray = array();
    	
    	foreach ($votos as $voto) {
    		$objArray[] = $this->_populate($voto);
    	}
    	
    	return $objArray;
    }
    
    public function findByCandidatoIdAndUsuarioID($candidato_id, $usuario_id)
    {
    	$db = $this->getDb();
    	$query = $db->select();
    	$query->from('voto')
	    	->where('candidato_id = ?', $candidato_id)
	    	->where('usuario_id = ?', $usuario_id);
    
    	$data = $db->fetchRow($query);
    	if ($data) {
    		return $this->_populate($data);
    	}
    }
}

